package com.aier.entrance.service;

import java.util.List;
import java.util.Map;

import com.aier.entrance.entity.EntranceDevice;

public interface IEntranceCardService {
    
    /**
     * 刷卡入操作
     */
    short OPERATE_IN=1;
    
    /**
     * 刷卡出操作
     */
    short OPERATE_OUT=2;
    
    /**
     * 刷卡时间段:1:<=上午结束的进入时间 
     */
    short TIME_M_IN=1;

    /**
     * 刷卡时间段:2:>上午结束<=下午结束的进入时间
     */
    short TIME_A_IN=2;
    
    /**
     * 刷卡时间段:3:<=下午开始的退出时间 
     */
    short TIME_M_OUT=3;
    
    /**
     * 刷卡时间段:4:>下午开始的退出时间
     */
    short TIME_A_OUT=4;
    
    /**
     * 刷卡时间段:5:>下午结束的进入时间或者无效的刷卡时间)
     */
    short TIME_N_IN=5;
    
    /**
     * 用户绑定ic卡
     * @param uid
     * @param cid
     * @return 0绑定失败,1非法卡号,2校方未开通,3卡密码不匹配,10绑定成功
     */
    int userBindIC(long uid, String ichead,String icbody,String icfoot);
    
    
    /**
     * 刷卡操作
     * @param sn 设备编号
     * @param icid 卡编号
     * @param operate 操作
     * @return 0打卡失败,1无该设备,2该设备停用状态,3卡不存在或停用中,4用户无权限在该设备上打卡,5用户记录失败
     * 10 用户记录成功,20教师打卡记录成功
     */
    long[] updateSwingICCard(String sn,String icid,short operate,String recordTime);
    
    /**
     * 保存打卡后的图片
     * @param id 打卡记录id
     * @param filename 文件名
     * @param operate 操作
     */
    String updateImg(Long id,Long uid,long usertype,short operate);
    
    /**
     * 查询出所有设备
     * @return
     */
    List<EntranceDevice> searchEntranceDeviceAll();
    
    /**
     * 查询出该代理商所持有的所有门禁设备
     * @param page
     * @param page_size
     * @param uid
     * @return
     */
    Map<String,Object> searchProxyEntrance(int page,int page_size,Long uid);
    
    /**
     * 绑定视频设备
     * @param eid 门禁id
     * @param vid 视频id
     * @param uid 代理商用户id
     * @return 1成功,0失败
     */
    int updateBindVideo(Long eid,Long vid,Long uid);
    
    /**
     * 分派门禁设备给学校
     * @param eid
     * @param sid
     * @return
     */
    int updateAssignEntrance(Long eid,Integer sid,Long uid);

    /**
     * 修改解析ip
     */
    void updateVideoUrlIP(Long vid, String newIP);
}
